-- *******************************************************************
-- Description of managed objects for Ethernet access interfaces.
--
-- January 2005, Gunnar Lovblom
--
-- Copyright (c) 2005 by Cisco Systems, Inc.
-- All rights reserved.
-- *******************************************************************

CISCO-ETHERNET-ACCESS-MIB DEFINITIONS ::= BEGIN

IMPORTS
    
    Integer32,
    MODULE-IDENTITY,
    OBJECT-TYPE                 FROM SNMPv2-SMI 
    
    TEXTUAL-CONVENTION          FROM SNMPv2-TC
                            
    ciscoMgmt                   FROM CISCO-SMI
    
    MODULE-COMPLIANCE,
    OBJECT-GROUP                FROM SNMPv2-CONF

    vtpVlanIndex,
    managementDomainIndex       FROM CISCO-VTP-MIB 
    
    ifIndex                     FROM IF-MIB;
     

ciscoEthernetAccessMIB MODULE-IDENTITY
    LAST-UPDATED   "200501180000Z" 
    ORGANIZATION   "Cisco Systems, Inc."
    CONTACT-INFO   "Cisco Systems
                    Customer Service

                    Postal: 170 W Tasman Drive
                    San Jose, CA 95134

                    Tel: +1 800 553-NETS

                    E-mail: cs-dsbu@cisco.com"
    DESCRIPTION
         "The tables defined by this MIB module contain a collection
          of managed objects that are general in nature and apply to
          an edge device in an organizations network, e.g. a Metro 
          Ethernet network. An edge device, is a customer located 
          equipment, this is the first device which will connect the
          Service Provider's network and map subscriber traffic into
          the next layer. The access media could be either CAT5 or
          fiber. The access device (edge device) can be designed for
          DSL, Ethernet or other technologies, however, this MIB is 
          designed for Ethernet. 
        
          Terminology:
          UNI - User to Network Interface 
          NNI - Network to Network Interface.
          module/device
              - In an environment (specifically, in an SNMP context)
                consisting of a single chassis which can contain
                multiple cards, the term 'module' refers to a card
                and the term 'device' refers to the whole chassis.
                In an environment where multiple chassis are 'stacked'
                together, the term 'module' refers to a chassis and
                the term 'device' refers to the whole stack.
                In an environment containing only a single chassis
                without removable cards, the terms 'device' and
                'module' both refer to the chassis and its contents."
                        
    REVISION    "200501180000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { ciscoMgmt 466 }

-- MIB Objects Definitions

ciscoEthernetAccessMIBObjects OBJECT IDENTIFIER ::=
                   { ciscoEthernetAccessMIB 1 }
ciscoEthernetAccessMIBConform OBJECT IDENTIFIER ::= 
                   { ciscoEthernetAccessMIB 2 }

ceaGlobals                    OBJECT IDENTIFIER ::= 
                   { ciscoEthernetAccessMIBObjects 1 } 
ceaConfig                     OBJECT IDENTIFIER ::= 
                   { ciscoEthernetAccessMIBObjects 2 } 
                 
-- Textual Conventions

CeaVlanUNIType ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
        "The type of a VLAN.
            
        'other' -- this VLAN is not a UNI VLAN 
                      
        'isolated' -- this VLAN is a UNI isolated VLAN.  
            UNI ports that are members of a UNI isolated VLAN can
            not communicate with other ports in that VLAN, however 
            NNI ports can communicate with UNI and NNI ports in the
            same VLAN. 
                        
        'community' -- this VLAN is a UNI community VLAN.  
        UNI and NNI ports that are members of the community 
        VLAN can communicate with all other UNI and NNI ports 
        in the same VLAN."  
                        
    SYNTAX     INTEGER {
                   other(1),
                   isolated(2),
                   community(3) 
               }
             
ceaMaxNNIPorts OBJECT-TYPE
    SYNTAX      Integer32 (0..512)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The max number of interfaces per module for which the 
        ceaPortType can have the value 'nni'.
        The value of 0 is returned by this object if there is no 
        limitation to the number of NNI ports."
    ::= { ceaGlobals 1 } 
    
ceaMaxUNIVlanCommunityPorts OBJECT-TYPE
    SYNTAX     Integer32 (0..512) 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The maximum number of ports on this device for which
        the ceaUNIVlanType object can have the value 'community'.
        The value of 0 is returned by this object if there is no 
        limitation to the number of UNI VLAN Communities."
    ::= { ceaGlobals 2 }

-- ceaPortTable

ceaPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CeaPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table contains Ethernet port specific information. 
        There exists an entry for each Ethernet port with an ifType
        of 6 (ethernetCsmacd) in this table.
        Note that the maximum number of NNI ports that can be
        configured per module on this device is given by the value
        of ceaMaxNNIPorts."
    ::= { ceaConfig 1 }

ceaPortEntry OBJECT-TYPE
    SYNTAX      CeaPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A set of Ethernet port specific parameters for a device 
        which can be configured with a mixture of UNI and NNI ports."
    INDEX       { ifIndex }
    ::= { ceaPortTable 1 }

CeaPortEntry ::= SEQUENCE {
    ceaPortType         INTEGER,
    ceaPortCapability   BITS 
  }

ceaPortType OBJECT-TYPE
    SYNTAX     INTEGER {
         unspecified(1), 
         uni(2),        
         nni(3)        
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The current configuration of the port. Only ports that are
        supported by the  ceaPortCapability object can be set.
        Unspecified port type is any other port type than NNI or UNI.
        unspecified = Not UNI, nor NNI.
        uni         = User to Network Interface port type.
        nni         = Network to Network Interface port type."
    ::= { ceaPortEntry 1 }

ceaPortCapability OBJECT-TYPE
    SYNTAX     BITS {
         nni(0), 
         uni(1) 
    } 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Types supported by the Ethernet port. If a port doesn't 
        support NNI or UNI the ceaPortType will not allow set of
        the unsupported type.
        nni  = Port supports NNI.
        uni  = Port supports UNI."
    ::= { ceaPortEntry 2 }      

-- ceaUNIVlanTable

ceaUNIVlanTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CeaUNIVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "This table contains UNI VLAN information for all the VLANs 
        which currently exist on this device. 
        The number of UNI ports that can belong to a VLAN type 
        'community' is limited by the ceaMaxUNIVlanCommunityPorts 
        object."
    ::= { ceaConfig 2 }

ceaUNIVlanEntry OBJECT-TYPE
    SYNTAX      CeaUNIVlanEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "There is an entry in this table for each VLAN that 
        exist on this device." 
    INDEX    { managementDomainIndex, vtpVlanIndex }
    ::= { ceaUNIVlanTable 1 }

CeaUNIVlanEntry ::= SEQUENCE {
    ceaUNIVlanType  CeaVlanUNIType  
   }

ceaUNIVlanType OBJECT-TYPE
    SYNTAX     CeaVlanUNIType
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Indicates the VLAN type defined for the UNI VLAN."
    ::= { ceaUNIVlanEntry 1 }


-- MIB Conformance Statements

cEthernetAccessMIBCompliances OBJECT IDENTIFIER ::= 
    { ciscoEthernetAccessMIBConform 1 }

cEthernetAccessMIBGroups      OBJECT IDENTIFIER ::= 
    { ciscoEthernetAccessMIBConform 2 }

-- Compliance

cEthernetAccessMIBCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The compliance statement for entities that implement the
        CISCO-ETHERNET-ACCESS-MIB. Implementation of this MIB is
        mandatory for any platform that have Ethernet UNI/NNI 
        capable interfaces."

    MODULE -- this module
        MANDATORY-GROUPS {
            ceaPortGroup,
            ceaVlanGroup
         }
     
    OBJECT       ceaUNIVlanType
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."
                                                     
    OBJECT       ceaPortType
        MIN-ACCESS   read-only
        DESCRIPTION  "Write access is not required."

    ::= { cEthernetAccessMIBCompliances 1 }
 

                                                     
-- Units of Conformance

ceaPortGroup OBJECT-GROUP
    OBJECTS {
        ceaMaxNNIPorts,
        ceaPortType,
        ceaPortCapability
    }
    STATUS current
    DESCRIPTION
        "A collection of managed objects defining port types."
    ::= { cEthernetAccessMIBGroups 1 } 

ceaVlanGroup OBJECT-GROUP
    OBJECTS {
        ceaMaxUNIVlanCommunityPorts,
        ceaUNIVlanType
    }
    STATUS current
    DESCRIPTION
        "A collection of managed objects defining VLAN types."
     
    ::= { cEthernetAccessMIBGroups 2 }

END